home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Suzy B Software 2
/
Suzy B Software CD-ROM 2 (1994).iso
/
extras
/
falcon
/
bwing105
/
bwings.lst
< prev
next >
Wrap
File List
|
1995-04-27
|
5KB
|
179 lines
'
'
' * * * * * * * Bird's Wings * * * * * *
' * Compatibilité: Xbios 88 et Xbios 5 *
' * * * * * * * * * * * * * * * * * * *
'
' * * Test pour Bird's Wings * *
' Un changement de résolution sous B.W. est possible, ainsi
' que le retour à l'ancienne résolution virtuelle.
'
' Essayez ce listing sous écran virtuel B.W.
'
'
'
'
Defint "a-z"
Deflist 3
'
T_swap
T_swap2
T_swap3
T_swap4
T_swap5
'
'
' Simple changement de résolution -> ST Moyenne
> procedure T_swap
'
Ancien_res&=Xbios(88,-1) ! Résolution actuelle
' Ancien_res& contient maintenant le mode normal de résolution.
' Si B.W. est installé, le bit 12 de Ancien_res& sera fixé.
' Ce bit est la marque de Bird's Wings.
'
'
Void Xbios(5,L:-1,L:-1,1) ! Passage en moyenne résolution
' Nous passons ici en moyenne résolution.
' Si B.W. était installé, il est désactivé.
' Vous êtes donc en résolution normale
' (Ici: moyenne, de 320 points sur 200 en 4 couleurs)
'
'
Test_couleurs
Print "Test 1 / Moyenne résolution. Pressez une touche"
Waitkey ! Attendre une touche au clavier
'
Void Xbios(88,Ancien_res&) ! Passage en résolution normale
' Cet appel remet la résolution initiale.
' Si B.W. est installé (même désactivé), l'écran virtuel sera remis
' Note: On peut aussi faire un Void Xbios(5,L:-1,L:-1,3,ancien_res&)
'
'
Cls
Print "Test 1 / Ecran réinstallé - Pressez une touche"
Waitkey
'
Return
'
' Changement de résolution, nouvel écran logique/physique
> procedure T_swap2
'
Ancien_res&=Xbios(88,-1) ! Ancien mode?
Ancien_ecran%=Xbios(3) ! Ancienne adresse écran?
'
Adr_ecran%=Malloc(32000)
If Adr_ecran%>0
~Xbios(5,L:Adr_ecran%,L:Adr_ecran%,1) ! ST Moyenne, nouvel écran
Test_couleurs
Print "Test 2 / Ecran supplémentaire"
Waitkey
~Xbios(5,L:Ancien_ecran%,L:Ancien_ecran%,3,Ancien_res&)
~Mfree(Adr_ecran%)
Cls
Print "Test 2 / Ecran réinstallé - Pressez une touche"
Waitkey
Endif
'
Return
'
' Idem Test 2 mais avec autre résol. (256 col)
> procedure T_swap3
Ancien_res&=Xbios(88,-1) ! Ancien mode?
Ancien_ecran%=Xbios(3) ! Ancienne adresse écran?
'
Nouv_ecran%=Or(And(Ancien_res&,&X111111000),&X11) ! 256 col
Adr_ecran%=Malloc(Xbios(91,Nouv_ecran%))
If Adr_ecran%>0
'
' Note: TOUJOURS mettre le Xbios 8 après
~Xbios(5,L:Adr_ecran%,L:Adr_ecran%,-1)
~Xbios(88,Nouv_ecran%)
Test_couleurs
Print "Test 3 / Ecran supplémentaire 2 par Xbios(5)+Xbios(88)"
Waitkey
' Idem:
~Xbios(5,L:Adr_ecran%,L:Adr_ecran%,3,Nouv_ecran%)
Test_couleurs
Print "Test 3 / Ecran supplémentaire 2 bis .. (identique) par Xbios(5) étendu"
Waitkey
'
~Xbios(5,L:Ancien_ecran%,L:Ancien_ecran%,3,Ancien_res&)
~Mfree(Adr_ecran%)
Cls
Print "Test 3 / Ecran réinstallé - Pressez une touche"
Waitkey
Endif
'
Return
'
' Idem Test 2 et 3 mais en résol virtuelle! (->souris!)
> procedure T_swap4
'
Ancien_ecran%=Xbios(3)
'
Taille%=Xbios(91,Xbios(88,-1))
Adr_ecran%=Malloc(Taille%)
If Adr_ecran%>0
~Xbios(5,L:Adr_ecran%,L:Adr_ecran%,-1)
Test_couleurs
Print "Test 4 / Résolution VIRTUELLE, MAIS a changée d'adresse!"
Waitkey
~Xbios(5,L:Ancien_ecran%,L:Ancien_ecran%,-1)
~Mfree(Adr_ecran%)
Cls
Print "Test 4 / Ecran réinstallé - Pressez une touche"
Waitkey
Endif
'
Return
'
' Même chose que Test 4, mais avec flip LogBase/PhyBase!
> procedure T_swap5
'
Ancien_ecran%=Xbios(3)
'
Taille%=Xbios(91,Xbios(88,-1))
Adr_ecran%=Malloc(Taille%)
If Adr_ecran%>0
Cls
Print "L'affichage se fait sur un écran virtuel, veuillez patienter!"
~Xbios(5,L:Adr_ecran%,L:-1,-1) ! PhyBase ne change pas
Cls
Test_couleurs
Print "Test 5 / Résolution VIRTUELLE, MAIS a changée d'adresse et PhyBase<>LogBase!"
For A&=1 To 100
Circle A&*5,A&+100,A&
Next A&
~Xbios(5,L:-1,L:Adr_ecran%,-1) ! PhyBase change!
Waitkey
~Xbios(5,L:Ancien_ecran%,L:Ancien_ecran%,-1)
~Mfree(Adr_ecran%)
Cls
Print "Test 5 / Ecran réinstallé - Pressez une touche"
Waitkey
Endif
Return
'
'
' Attendre une touche au clavier
> procedure Waitkey
Showm
~Inp(2)
Return
'
' Barre de couleurs
> procedure Test_couleurs
Local A&
Cls
For A&=0 To 2^Dpeek(L~a) ! Nombre de couleurs
Deffill A&
Pbox 0+A&*2,0,2+A&*2,100
Next A&
Print "Ecran logique: "+Hex$(Xbios(3),8)
Print "Couleurs= ";2^Dpeek(L~a)
Print "Xmax= ";Dpeek(L~a-&HC)
Print "Ymax= ";Dpeek(L~a-&H4)
Return
'
'